<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

App::import('Vendor', 'ClassEzpdf', array('file' => 'pdf/class.ezpdf.php'));
$pdf = new Cezpdf('LETTER');
$pdf->ezStartPageNumbers(20, 75, 10, 'right', utf8_decode('Página' . "  {PAGENUM} de {TOTALPAGENUM}"), 1);
generar_carta(' ', "", $pdf);

foreach ($proponente as $prop) {
    $str = "Señor(a):";
    $pdf->ezText(utf8_decode($str), 12, array('justification' => 'left'));
    $pdf->ezText(utf8_decode($prop['Proposer']['nombre'] . ":\n$codigo\nConvocatoria INCODER SIT-01-2011\n" . $prop['Proposer']['direccion'] . "\n" . $prop['City']['name']), 12, array('justification' => 'left'));
}

if ($proyecto['Proyect']['resultado_fase1'] == 1) {
    $str = "\n\n<b>Referencia:</b> Concepto HABILITANTE de la Fase I correspondiente a la propuesta $codigo.\n\nSeñor Proponente:\n\n";
    $pdf->ezText(utf8_decode($str), 12, array('justification' => 'full'));
    $str = "De conformidad con lo establecido en los Términos de Referencia de la Convocatoria Pública para el otorgamiento del Subsidio Integral para la Compra de Tierras SIT-01-2011, los cuales constituyen las reglas generales para el desarrollo de la citada convocatoria de acuerdo con la Constitución y la Ley, buscando garantizar los principios de IGUALDAD, TRANSPARENCIA y SELECCIÓN OBJETIVA. Además, establecen los derechos y obligaciones de los participantes, así como los parámetros, procedimientos y requisitos sociales, culturales, organizativos, técnicos, jurídicos, ambientales y financieros cuyo cumplimiento hará posible la obtención de la cofinanciación; de manera atenta le informamos lo siguiente:";
    $str.="\nUna vez finalizada la <b>Fase I Verificación de Requisitos Mínimos</b>, el Instituto Colombiano de Desarrollo Rural - INCODER, concluyó que el proyecto de la referencia cumple con los requisitos mínimos, en consecuencia, su proyecto obtuvo CONCEPTO <b>HABILITADO</b> para continuar en la <b>Fase II A</b> de la citada convocatoria, por ende de acuerdo lo establecido en el numeral 2.4 de los Términos de Referencia, le será programada la correspondiente Visita Técnica al Predio ofertado, para lo cual le estaremos informando oportunamente.";
    $pdf->ezText(utf8_decode($str), 12, array('justification' => 'full'));
    $pdf->ezNewPage();
    $str = "El concepto <b>HABILITADO</b> en ningún caso puede entenderse como el otorgamiento de una calificación final o como garantía al derecho de recibir el apoyo económico correspondiente, dado que dicha situación se definirá una vez concluya todo el proceso de selección.";
    $pdf->ezText(utf8_decode($str), 12, array('justification' => 'full'));
    $str = "Es importante que usted como proponente tenga en cuenta lo siguiente para la Visita Técnica al Predio:

1.- Los aspirantes y cónyuges o compañeros permanentes de proyectos habilitados deben presentarse a la visita al predio PERSONALMENTE con su documento de identidad o a través de sus representantes legales, de lo contrario, la unidad familiar será rechazada, y si con este rechazo el número de aspirantes del proyecto no cumple con el mínimo, el proyecto también será rechazado.

2.- En caso de requerir el pronunciamiento por parte de la Autoridad Ambiental correspondiente y haber obtenido respuesta de la misma, adjuntarla en el momento de la visita al funcionario responsable de ella.

3.- Cabe anotar, que los inmuebles identificados en la Fase I de la convocatoria (Presentación y Verificación de Requisitos Mínimos - aspirantes y predios) no pueden ser objeto de modificaciones, es decir, NO es permitido modificar el (los) predio(s) o la(s) familia(s) aspirante(s) presentada(s) con la propuesta. Lo anterior, en atención al principio de Inmodificabilidad de la Propuesta establecido en el numeral 1.3 de los Términos de Referencia.

De parte del Instituto Colombiano de Desarrollo Rural - INCODER, le expresamos un cordial saludo y esperamos contar con su participación en la Fase II de la Convocatoria Pública para Cofinanciar Proyectos de Fomento de la Acuicultura y la Pesca Vigencia 2011 (Evaluación, Calificación y Selección de Proyectos).

Cordialmente,\n\n\n";
    $pdf->ezText(utf8_decode($str), 12, array('justification' => 'full'));

    $pdf->ezText($proyecto['Branch']['director'], 12, array('justification' => 'full'));
    $pdf->ezText("DIRECTOR TERRITORIAL " . utf8_decode($proyecto['Branch']['nombre']), 12, array('justification' => 'full'));
    //$pdf->ezText(utf8_decode("ELVER HERNANDO GARCIA RODRIGUEZ\nSUBGERENTE DE GESTIÓN Y DESARROLLO PRODUCTIVO"), 12, array('justification' => 'full'));
} else {
    $str = "\n\n<b>Referencia:</b> Concepto NO HABILITANTE de la Fase I correspondiente a la propuesta $codigo.\n\nSeñor Proponente:\n\n";
    $pdf->ezText(utf8_decode($str), 12, array('justification' => 'full'));
    $str = "De conformidad con lo establecido en los Términos de Referencia de la Convocatoria Pública para el otorgamiento del Subsidio Integral para la Compra de Tierras SIT-01-2011, los cuales constituyen las reglas generales para el desarrollo de la citada convocatoria de acuerdo con la Constitución y la Ley, buscando garantizar los principios de IGUALDAD, TRANSPARENCIA y SELECCIÓN OBJETIVA y establecen los derechos y obligaciones de los participantes, así como los parámetros, procedimientos y requisitos sociales, culturales, organizativos, técnicos, jurídicos, ambientales y financieros cuyo cumplimiento hará posible la obtención de la cofinanciación; de manera atenta le informamos lo siguiente:\n";
    $str.="\nUna vez finalizada la <b> Fase I Verificación de Requisitos Mínimos</b>, el Instituto Colombiano de Desarrollo Rural - INCODER, concluyó que el proyecto de la referencia no cumple con los requisitos mínimos para ser habilitado dentro del marco de la Convocatoria Pública citada, toda vez que se encuentra en una situación que constituye causal de rechazo, conforme al numeral 1.15 de los términos de referencia y al Informe de Verificación de Requisitos Mínimos que se encuentra anexo a la presente comunicación.";
    $str.="\nEn virtud de lo señalado, el proyecto presentado fue rechazado en esta primera etapa de la convocatoria, de tal forma que el mismo no podrá";
    $str.=" ser considerado para acceder al otorgamiento del subsidio.\n
Sin perjuicio de lo anterior, resulta oportuno recordarle que con fundamento en el numeral 4.1 de los términos de referencia \"Los y las participantes podrán presentar reclamaciones a los resultados de cada Fase ante el Comité de Reclamaciones del INCODER, dentro de los diez (10) días siguientes al recibo de la comunicación enviada por el instituto cuando sea rechazada, pero en todo caso, nunca después de transcurridos treinta (30) días corrientes desde la respectiva publicación que afecte su situación en el proceso de la convocatoria. Por su parte, el Comité de Reclamaciones tendrá treinta (30) días para aceptar o rechazar las reclamaciones presentadas.\" 

En consecuencia, una vez transcurridos los plazos anteriormente mencionados, el Instituto efectuará la devolución de los documentos presentados en la Fase I de esta convocatoria. 

De parte del Instituto Colombiano de Desarrollo Rural - INCODER, nos permitimos expresarle un sincero agradecimiento por su participación en esta convocatoria pública y lo invitamos a que nos acompañe en los próximos procesos de convocatorias que se adelanten para continuar apoyando el desarrollo y progreso de la población rural de nuestro país.

Cordialmente,\n\n
";
    $pdf->ezText(utf8_decode($str), 12, array('justification' => 'full'));
    $pdf->ezText($proyecto['Branch']['director'], 12, array('justification' => 'full'));
    $pdf->ezText("DIRECTOR TERRITORIAL " . utf8_decode($proyecto['Branch']['nombre']), 12, array('justification' => 'full'));
    //$pdf->ezText(utf8_decode("ELVER HERNANDO GARCIA RODRIGUEZ\nSUBGERENTE DE GESTIÓN Y DESARROLLO PRODUCTIVO"), 12, array('justification' => 'full'));

    $pdf->ezNewPage();
}
//Cargamos requisitos del proyecto


App::Import('model', 'ProyectRequirement');
$preq = new ProyectRequirement();
$preq->recursive = 0;
$requisitos_proyecto = $preq->find('all', array('conditions' => array('ProyectRequirement.proyect_id' => $pid), 'fields' => array('Requirement.texto', 'ProyectRequirement.calificacion', 'ProyectRequirement.id', 'ProyectRequirement.con_subsanacion', 'ProyectRequirement.cal_subsanacion')));
$data = array();

foreach ($requisitos_proyecto as $requisitopro) {
    $calif = "";
    $obs = "";
    switch ($requisitopro['ProyectRequirement']['calificacion']) {
        case NULL:
            $calif = "No Cumple,Sin registro";
            break;
        case 0:
            $calif = "No Cumple,Sin registro";
            break;
        case 1:
            $calif = "Cumple";
            break;
        case 2:
            $calif = "No Cumple";
            $razones = $preq->query("SELECT RequirementFault.nombre FROM  proyect_requirements_requirement_faults ProyectRequirementsRequirementFault LEFT JOIN proyect_requirements ProyectRequirement ON ProyectRequirement.id= ProyectRequirementsRequirementFault.proyect_requirement_id LEFT JOIN requirement_faults RequirementFault ON RequirementFault.id= ProyectRequirementsRequirementFault.requirement_fault_id WHERE ProyectRequirementsRequirementFault.proyect_requirement_id= " . $requisitopro['ProyectRequirement']['id']);
            foreach ($razones as $razon) {
                $obs.=$razon["RequirementFault"]['nombre'] . "\n";
            }
            break;
        case 3://En el caso de subsanaciones
            $obs = $requisitopro['ProyectRequirement']['con_subsanacion'];
            switch ($requisitopro['ProyectRequirement']['cal_subsanacion']) {
                case 0:
                    $calif = "Subsanable";

                    break;
                case 1:
                    $calif = "Subsanó,Cumple";

                    break;
                case 2:
                    $calif = "Subsanó,No cumple";

                    break;
                case 3:
                    $calif = "Subsanable";

                    break;

                default:
                    break;
            }

            break;


        default:
            break;
    }

    $data[] = array('<b>Requisito</b>' => utf8_decode($requisitopro['Requirement']['texto']), '<b>Observaciones</b>' => utf8_decode($obs), '<b>Calificacion</b>' => utf8_decode($calif));
}

$pdf->ezTable(
        $data, null, "Requisitos de Proyecto", array(
    'fontSize' => 7,
    'titleFontSize' => 12,
    'width' => 500,
    'showHeadings' => 1,
    'showLines' => 2,
    'shaded' => 0,
    'cols' => array('Requisito' => array('justification' => 'full'), 'Observaciones' => array('justification' => 'full')),
        )
);

$pdf->ezText("\n", 12, array('justification' => 'full'));

//fin impresion requisitos de proyecto

$resp = "";
$cal = "";
App::Import('model', 'Candidate');
$candidate = new candidate();
$candidate->recursive = -1;
$cupos = $candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $pid, 'Candidate.clase' => 1)));
$suplentes = $candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $pid, 'Candidate.clase' => 2)));
$activos = $candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $pid, 'Candidate.estado_filtro' => 1, 'Candidate.candidate_id' => 0)));


$aspirantes = $candidate->find('all', array('conditions' => array('Candidate.proyect_id' => $pid, 'Candidate.candidate_id' => 0), 'fields' => array('Candidate.id', 'Candidate.tipo', 'Candidate.nro_ident', 'Candidate.1er_nombre', 'Candidate.1er_apellido', 'Candidate.2do_nombre', 'Candidate.2do_apellido', 'Candidate.tipo_ident')));
$anterior = "";
$data = array();

$data = getfields($aspirantes);


$pdf->ezTable(
        $data, null, "Requisitos aspirantes", array(
    'fontSize' => 7,
    'titleFontSize' => 12,
    'width' => 500,
    'showHeadings' => 1,
    'showLines' => 2,
    'shaded' => 0,
    'cols' => array('Documento' => array('justification' => 'left', 'width' => 75), 'Tipo' => array('justification' => 'full', 'width' => 70), 'Nombre' => array('justification' => 'full', 'width' => 120), 'Observaciones' => array('justification' => 'full', 'width' => 170), 'Concepto' => array('justification' => 'left', 'width' => 50))
        )
);
$pdf->ezText(utf8_decode("\nFamilias titulares:$cupos Familias suplentes: $suplentes  Familias que cumplen requisitos:$activos"), 12, array('justification' => 'full'));




$pdf->ezText("\n", 12, array('justification' => 'full'));

///IMPRESION REQUISITOS PREDIOS

App::Import('model', 'Property');
$prdeq = new Property();
$prdeq->recursive = 0;
$predios = $prdeq->find('all', array('conditions' => array('Property.proyect_id' => $pid), 'fields' => array('Property.id', 'Property.nombre', 'Property.codigo', 'City.ley_segunda')));
$data = array();

foreach ($predios as $predio) {
    $calif = "";
    $obs = "";
    $prdeq->PropertyRequirement->recursive = 0;
    $data[] = array('Requisito' => utf8_decode("<b>" . $predio['Property']['nombre'] . "</b>"), 'Observaciones' => utf8_decode("<b>" . $predio['Property']['codigo'] . "</b>"), 'Concepto' => utf8_decode(''));
    //predios en ley segunda

    $ley2da = "Cumple";
    if ($predio['City']['ley_segunda'] == 1) {
        $ley2da = "No Cumple";
    }
    $data[] = array('Requisito' => utf8_decode('Ley segunda'), 'Observaciones' => utf8_decode(''), 'Concepto' => utf8_decode($ley2da));





    $requisitos_predios = $prdeq->PropertyRequirement->find('all', array('conditions' => array('PropertyRequirement.property_id' => $predio['Property']['id']), 'fields' => array('PropertyRequirement.concepto', 'PropertyRequirement.con_subsanacion', 'PropertyRequirement.cal_subsanacion', 'PropertyRequirement.id', 'PropertyRequirement.calificacion', 'Requirement.texto')));
    foreach ($requisitos_predios as $requisitopre) {
        $obsp = "";
        $calp = "";


        switch ($requisitopre['PropertyRequirement']['calificacion']) {
            case NULL:
                $calp = "No Cumple.Sin registro";
                break;


            case 0:
                $calp = "No Cumple.Sin registro";

                break;
            case 1:
                $calp = "Cumple";

                break;
            case 2:
                $calp = "No Cumple";
                $obsp = $requisitopre['PropertyRequirement']['concepto'];
                $razonesp = $preq->query("SELECT RequirementFault.nombre FROM  property_requirements_requirement_faults PropertyRequirementsRequirementFault LEFT JOIN property_requirements PropertyRequirement ON PropertyRequirement.id= PropertyRequirementsRequirementFault.property_requirement_id LEFT JOIN requirement_faults RequirementFault ON RequirementFault.id= PropertyRequirementsRequirementFault.requirement_fault_id WHERE PropertyRequirementsRequirementFault.property_requirement_id= " . $requisitopre['PropertyRequirement']['id']);
                foreach ($razonesp as $razonp) {
                    $obsp.=$razonp["RequirementFault"]['nombre'] . "\n";
                }
                break;

            case 3:
                $obsp = $requisitopre['PropertyRequirement']['con_subsanacion'];
                switch ($requisitopre['PropertyRequirement']['cal_subsanacion']) {
                    case 0:
                        $calp = "Subsanable";


                        break;
                    case 1:
                        $calp = "Subsanó,Cumple";

                        break;
                    case 2:
                        $calp = "Subsanó,No cumple";

                        break;
                    case 3:
                        $calp = "Subsanable";

                        break;



                    default:
                        break;
                }



                break;
        }


        $data[] = array('Requisito' => utf8_decode($requisitopre['Requirement']['texto']), 'Observaciones' => utf8_decode($obsp), 'Concepto' => utf8_decode($calp));
    }
    $prdeq->TitleStudy->recursive = -1;
    $titulo = $prdeq->TitleStudy->find('first', array('conditions' => array('TitleStudy.property_id' => $predio['Property']['id']), 'order' => array('TitleStudy.id DESC'), 'fields' => array('TitleStudy.concepto', 'TitleStudy.calificacion')));
    $calE = "";
    switch ($titulo['TitleStudy']['calificacion']) {
        case 0:
            $calE = "No Cumple";


            break;
        case 1:
            $calE = "Cumple";

            break;
        case 2:
            $calE = "No cumple";

            break;
        case 3:
            $calE = "Subsanable";

            break;



        default:
            break;
    }

    $data[] = array('Requisito' => utf8_decode("ESTUDIO DE TÍTULOS"), 'Observaciones' => utf8_decode($titulo['TitleStudy']['concepto']), 'Concepto' => utf8_decode($calE));
}

$pdf->ezTable(
        $data, null, "Requisitos de Predio", array(
    'fontSize' => 7,
    'titleFontSize' => 12,
    'width' => 500,
    'showHeadings' => 1,
    'showLines' => 2,
    'shaded' => 0,
    'cols' => array('Requisito' => array('justification' => 'full', 'width' => 200), 'Observaciones' => array('justification' => 'full', 'width' => 200), 'Concepto' => array('justification' => 'full', 'width' => 100)),
        )
);

$pdf->ezText("\n", 12, array('justification' => 'full'));
//FIN REQUISITOS PREDIOS
//
//FIRMAS
$firmas = array();

$firmas[] = array('uno' => utf8_decode("\n\n_________________________________\nResponsable Concepto Jurídico"), 'dos' => "\n\n_________________________________\nResponsable concepto Familias");

$pdf->ezTable(
        $firmas, null, "", array(
    'fontSize' => 10,
    'titleFontSize' => 12,
    'width' => 420,
    'showHeadings' => 0,
    'showLines' => 0,
    'shaded' => 0,
    'cols' => array('uno' => array('justification' => 'center'), 'dos' => array('justification' => 'center')),
        )
);

$pdf->ezStopPageNumbers(1, 1, 0);
$pdf->ezStream();
?>

<?php

function generar_carta($cod, $str, &$pdf, $start = true, $m_left = 2.5, $m_right = 2.5) {
    App::import('Vendor', 'ClassEzpdf', array('file' => 'pdf/class.ezpdf.php'));
    if ($pdf == NULL) {
        $pdf = new Cezpdf('LETTER');
    }
    if ($start) {
        $tmp = array(
            'b' => 'Trebuchet-Bold.afm'
            , 'i' => 'Trebuchet-Italic.afm'
            , 'bi' => 'Trebuchet-BoldItalic.afm'
            , 'ib' => 'Trebuchet-BoldItalic.afm'
            , 'bb' => 'Trebuchet-Bold.afm'
        );
        $pdf->setFontFamily('Trebuchet.afm', $tmp);
        $pdf->selectFont('fonts/Trebuchet.afm');

        //$pdf->ezSetCmMargins(5.5,5.5,4,4);

        $all = $pdf->openObject();
        $pdf->saveState();
        $pdf->addPngFromFile('img/cabecera.png', 60, 670, 500);
        $pdf->addPngFromFile('img/pie_de_pagina1.png', 100, 60, 550, 60);
        $pdf->addPngFromFile('img/pie_de_pagina.png', 0, 0, 610, 60);
        $pdf->restoreState();
        $pdf->closeObject();
        $pdf->addObject($all, 'all');
        $pdf->transaction('start');
    }

    $pdf->ezSetCmMargins(5, 5, $m_left, $m_right);

    $textOptions = array('justification' => 'full');
    $data = explode("\n", $str);
    $collecting = 0;
    foreach ($data as $d) {
        chop($d);
        if (strlen($d) && $d[0] == '#') {
            // comment, or new page request
            switch ($d) {
                case '#NP':
                    $pdf->ezNewPage();
                    break;
            }
        } else {
            $pdf->ezText($d, 8, $textOptions);
        }
    }
}

function getfields($aspirantes) {
    App::Import('model', 'Candidate');
    $candidate = new candidate();
    $candidate->recursive = -1;






    foreach ($aspirantes as $aspirante) {

        $calAsp = "Cumple";
        $conAsp = "";

        switch ($aspirante['Candidate']['tipo_ident']) {
            case 1:
                $tipo = "C.C";
                break;
            case 2:
                $tipo = "T.I";
                break;

            default:
                break;
        }
        $nombre = $aspirante['Candidate']['1er_nombre'] . " " . $aspirante['Candidate']['2do_nombre'] . " " . $aspirante['Candidate']['1er_apellido'] . " " . $aspirante['Candidate']['2do_apellido'] . "</b>";
        $ced = $aspirante['Candidate']['nro_ident'];
        $doc = "    <b>" . $tipo . " " . $aspirante['Candidate']['nro_ident'] . "</b>";
        $repetido_aspirantes = $candidate->find('count', array('conditions' => array('Candidate.nro_ident' => $ced)));
        $repetido_familias = $candidate->Relative->find('count', array('conditions' => array('Relative.nro_ident' => $ced)));
        if ($repetido_aspirantes > 1 || $repetido_familias > 1) {
            $calAsp = "No cumple";
            $conAsp = "EL aspirante se encuentra duplicado.";
        }
        $candidate->CandidateRequirement->recursive = 0;
        $requisitos = $candidate->CandidateRequirement->find('all', array('conditions' => array('CandidateRequirement.candidate_id' => $aspirante['Candidate']['id']), 'fields' => array('CandidateRequirement.con_subsanacion', 'CandidateRequirement.cal_subsanacion', 'CandidateRequirement.candidate_id', 'CandidateRequirement.id', 'CandidateRequirement.calificacion', 'Requirement.texto')));
        foreach ($requisitos as $requisito) {

            switch ($requisito['CandidateRequirement']['calificacion']) {
                case NULL:
                    $calAsp = "No cumple";
                    $conAsp.= $requisito['Requirement']['texto'] . ": sin Registro\n";
                    break;
                case 0:
                    $calAsp = "No cumple";
                    $conAsp.= $requisito['Requirement']['texto'] . ": sin Registro\n";
                    break;
                case 2:
                    $calAsp = "No cumple";
                    $conAsp.= $requisito['Requirement']['texto'] . "\n";
                    $motivos = $candidate->query("SELECT RequirementFault.nombre FROM requirement_faults RequirementFault LEFT JOIN candidate_requirements_requirement_faults CandidateRequirementsRequirementFault ON CandidateRequirementsRequirementFault.requirement_fault_id=RequirementFault.id WHERE CandidateRequirementsRequirementFault.candidate_requirement_id=" . $requisito['CandidateRequirement']['id']);
                    if (isset($motivos))
                        foreach ($motivos as $motivo) {
                            $conAsp.="-" . $motivo['RequirementFault']['nombre'] . "\n";
                        }
                    break;

                case 3:

                    switch ($requisito['CandidateRequirement']['cal_subsanacion']) {
                        case 0:
                            $calAsp = "No Cumple";
                            $conAsp.=$requisito['Requirement']['texto'] . "\n";
                            $conAsp.="-No hay registro De la subsanacion\n";

                            break;

                        case 2:
                            $calAsp = "No cumple";
                            $conAsp.=$requisito['Requirement']['texto'] . "\n";
                            $conAsp.="-" . $requisito['CandidateRequirement']['con_subsanacion'] . "\n";

                            break;
                        case 3:
                            $calAsp = "No cumple";
                            $conAsp.=$requisito['Requirement']['texto'] . "\n";
                            $conAsp.="-Subsanable: " . $requisito['CandidateRequirement']['con_subsanacion'] . "\n";

                            break;



                        default:
                            break;
                    }


                    break;

                default:
                    break;
            }
        }

        $data[] = array('Documento' => $doc, 'Nombre' => utf8_decode($nombre), 'Tipo' => 'Cabeza de familia', 'Observaciones' => utf8_decode($conAsp), 'Concepto' => utf8_decode($calAsp));
        ///
        //BUSQUEDA DE CONYUGUE DEL ASPIRANTE EN PROCESO
        $candidate->recursive = -1;

        $conyuges = $candidate->find('all', array('conditions' => array('Candidate.candidate_id' => $aspirante['Candidate']['id']), 'fields' => array('Candidate.id', 'Candidate.tipo', 'Candidate.nro_ident', 'Candidate.1er_nombre', 'Candidate.1er_apellido', 'Candidate.2do_nombre', 'Candidate.2do_apellido', 'Candidate.tipo_ident')));

        foreach ($conyuges as $conyuge) {
            // var_dump($aspirante);
            $calCon = "Cumple";
            $conCon = "";

            switch ($conyuge['Candidate']['tipo_ident']) {
                case 1:
                    $tipoc = "C.C";
                    break;
                case 2:
                    $tipoc = "T.I";
                    break;

                default:
                    break;
            }
            $nombrec = $conyuge['Candidate']['1er_nombre'] . " " . $conyuge['Candidate']['2do_nombre'] . " " . $conyuge['Candidate']['1er_apellido'] . " " . $conyuge['Candidate']['2do_apellido'] . "</b>";
            $cedc = $conyuge['Candidate']['nro_ident'];
            $docc = "    <b>" . $tipoc . " " . $conyuge['Candidate']['nro_ident'] . "</b>";
            $repetido_aspirantesc = $candidate->find('count', array('conditions' => array('Candidate.nro_ident' => $cedc)));
            $repetido_familiasc = $candidate->Relative->find('count', array('conditions' => array('Relative.nro_ident' => $cedc)));
            if ($repetido_aspirantesc > 1 || $repetido_familiasc > 1) {
                $calCon = "No cumple";
                $conCon = "EL aspirante se encuentra duplicado";
            }
            $candidate->CandidateRequirement->recursive = 0;
            $requisitosc = $candidate->CandidateRequirement->find('all', array('conditions' => array('CandidateRequirement.candidate_id' => $conyuge['Candidate']['id']), 'fields' => array('CandidateRequirement.id', 'CandidateRequirement.cal_subsanacion', 'CandidateRequirement.con_subsanacion', 'CandidateRequirement.calificacion', 'Requirement.texto')));
            foreach ($requisitosc as $requisitoc) {
                switch ($requisitoc['CandidateRequirement']['calificacion']) {
                    case NULL:
                        $calCon = "No cumple";
                        $conCon.= $requisitoc['Requirement']['texto'] . ":\n-sin Registro\n";
                        break;
                    case 0:
                        $calCon = "No cumple";
                        $conCon.="\n " . $requisitoc['Requirement']['texto'] . ":\n-sin Registro\n";
                        break;
                    case 2:
                        $calCon = "No cumple";
                        $conCon.="\n " . $requisitoc['Requirement']['texto'] . "";
                        $motivosc = $candidate->query("SELECT RequirementFault.nombre FROM requirement_faults RequirementFault LEFT JOIN candidate_requirements_requirement_faults CandidateRequirementsRequirementFault ON CandidateRequirementsRequirementFault.requirement_fault_id=RequirementFault.id WHERE CandidateRequirementsRequirementFault.candidate_requirement_id=" . $requisitoc['CandidateRequirement']['id']);
                        if (isset($motivosc))
                            foreach ($motivosc as $motivoc) {
                                $conCon.="\n -" . $motivoc['RequirementFault']['nombre'] . "\n";
                            }
                        break;

                    case 3:
                        $conCon.="\n" . $requisitoc['Requirement']['texto'] . "";
                        switch ($requisitoc['CandidateRequirement']['cal_subsanacion']) {
                            case 0:
                                $calCon = "No Cumple";
                                $conCon.="\n-No hay registro De la subsanacion";

                                break;

                            case 2:
                                $calCon = "No cumple";
                                $conCon.="\n-" . $requisitoc['CandidateRequirement']['con_subsanacion'];

                                break;
                            case 3:
                                $calCon = "No cumple";
                                $conCon.="\n-Subsanable: " . $requisitoc['CandidateRequirement']['con_subsanacion'];

                                break;

                            default:
                                break;
                        }


                        break;

                    default:
                        break;
                }
            }

            $data[] = array('Documento' => $docc, 'Nombre' => utf8_decode($nombrec), 'Tipo' => 'Conyuge', 'Observaciones' => utf8_decode($conCon), 'Concepto' => utf8_decode($calCon));
        }
    }


    if (empty($data)) {
        return "";
    } else {
        return $data;
    }
}
?>